/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package templatemethod;

/**
 *
 * @author jccaicedo
 */
public abstract class JuegoDeTablero {

    public final void jugar(int jugadores){
        // Funcionalidad del Juego
        iniciar();
        while(!acabo())
        {
            // Turnos
            for(int j = 0; j < jugadores; j++){
                hacerJugada(j);
            }
        }
        finDelJuego();
    }

    // Pasos ...
    abstract void iniciar();
    abstract void hacerJugada( int jugador );
    abstract void finDelJuego();
    abstract boolean acabo();

}
